package com.jhy.review.huiyi;

import java.util.Arrays;

/**
 * @author go_jhy
 * @create 2022/6/14 - 下午 2:58
 * 手写冒泡排序
 */
public class BubbleSort {

    public static void bubbleSort(int arr[]) {
        if (arr.length < 2 || arr == null) {
            return;
        }
        //外层控制整个循环次数
        for (int e = arr.length - 1; e > 0; e--) {
            //内层进行两两比较
            for (int i = 0; i < e; i++) {
                if (arr[i] > arr[i + 1]) {
                    swap(arr, i, i + 1);
                }
            }
        }

    }

//    插入排序
    public static void insertSort(int[] arr){
        if(arr.length < 2 || arr == null){
            return;
        }
        // 0~0位置上有序  0-1位置上有序  0-2位置上有序
        // 这里从1位置上面算，因为0位置上面已经有序了
        for (int i = 1; i < arr.length; i++) {
//            这里j是代表当前数的前一个数 所以j的条件是大于等于0
            for(int j = i - 1;j >= 0 && arr[j] > arr[j+1];j--){
                swap(arr,j,j+1);
            }
        }

    }

    public static void swap(int[] arr, int i, int j) {
        int tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
    }


    public static void main(String[] args) {
        int[] arr = {6, 4, 3, 2, 19, 6};
//        bubbleSort(arr);
        insertSort(arr);
        System.out.println(Arrays.toString(arr));
    }

}
